package com.gzy.android_douban.data.api;

import io.reactivex.Flowable;
import io.reactivex.Observable;
import java.util.Map;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.HTTP;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import retrofit2.http.Streaming;
import retrofit2.http.Url;

/**
 * @author : 顾兆远
 * @program: net-app
 * @description: 网络请求接口工具接口
 * @date : 2022-03-23 18:18
 **/
public interface HttpService {

  /**
   * 获取热门壁纸列表
   */
  // @GET("/v1/vertical/vertical?limit=30&skip=180&adult=false&first=0&order=hot")
  // Observable<WallPaperResponse> getWallPaper();
  // // http://localhost:8080/web_ai_api_war_exploded/
  // @GET("/web-ai-api/api/course-info")
  // Observable<ResponseBody> getCourseInfo();
  //
  // @POST("接口")
  // @FormUrlEncoded //表单传值
  // Call<ResponseBody> postResponseBody(@Field("username") String username, @Field("password") String pwd);
  //
  // @POST("接口")
  // @FormUrlEncoded //表单传值
  // Call<User> post(@Field("username") String username, @Field("password") String pwd);
  //
  // @POST("接口")
  // @FormUrlEncoded //表单传值
  // Flowable<User> postFlowable(@Field("username") String username, @Field("password") String pwd);
  //
  // @POST("接口")
  // @FormUrlEncoded
  // Call<ResponseBody> postMap(@FieldMap Map<String, String> map);
  //
  // @GET("接口")
  // Call<ResponseBody> get(@Query("username") String username, @Query("password") String pwd);
  //
  // @GET("接口")  //传多个值
  // Call<ResponseBody> getMap(@QueryMap Map<String, String> map);
  //
  // @HTTP(method = "GET", path = "接口地址")
  // Call<ResponseBody> http(@Query("username") String username, @Query("password") String pwd);
  //
  // @POST("接口")
  // Call<ResponseBody> postBody(@Body RequestBody body);
  //
  // @POST("{id}")
  // Call<ResponseBody> postInPath(@Path("id") String path);
  //
  // @POST("{id}")
  // Flowable<ResponseBody> postInPath2(@Path("id") String path);
  //
  // //加请求头
  // @POST("{id}")
  // Call<ResponseBody> postHeader(@Path("id") String path, @Header("app") String app);
  //
  // //加多个请求头
  // @POST("{id}")
  // @Headers({"app:123","version:1.1"})
  // Call<ResponseBody> postHeaders(@Path("id") String path);
  //
  // @POST
  // Call<ResponseBody> postUrl(@Url String url);
  //
  // @POST("接口")
  // @Multipart  //上传文件
  // Call<ResponseBody> upload(@Part MultipartBody.Part file);
  //
  // @Streaming //防止内存溢出
  // @GET
  // Call<ResponseBody> download(@Url String url);
  //
  // @Streaming //防止内存溢出
  // @GET
  // Flowable<ResponseBody> downloadRxjava(@Url String url);
}
